package org.zsk.cs.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.zsk.cs.domain.po.User;

import java.util.List;

/**
 * <p>
 * 用户 service
 * </p>
 *
 * @author zsk
 * @version 1.0
 * Created on 2020/03/26
 */
public interface UserService extends IService<User>, UserDetailsService {

    /**
     * 用户修改密码
     * @param user 用户
     * @return 执行结果
     */
    Boolean userChangePassword(User user);

    /**
     * 用户重置密码
     * @param user 用户
     * @return 执行结果
     */
    boolean userResetPassword(User user, String emailVerifyCode);

    /**
     * 用户个人信息设置
     * @param user 用户
     * @return 执行结果
     */
    Boolean userChangePersonalInfo(User user);

    /**
     * 批量禁用用户
     * @param ids 用户id集合
     * @return 执行结果
     */
    Boolean disableUser(List<Integer> ids);

    /**
     * 用户模糊查询
     * @param user 用户
     * @param page 分页
     * @return 符合条件的用户Page
     */
    Page<User> searchUser(User user, Page<User> page) throws Exception;
}
